When a private
method is only invoked by an inner class, there’s no reason not to move it into that class. It will still have the same
access to the outer class' members, but the outer class will be clearer and less cluttered.
Noncompliant code example
public class Outie {
private int i=0;
private void increment() { // Noncompliant
i++;
}
public class Innie {
public void doTheThing() {
Outie.this.increment();
}
}
}
Compliant solution
public class Outie {
private int i=0;
public class Innie {
public void doTheThing() {
increment();
}
private void increment() {
Outie.this.i++;
}
}
}